// StorageCom.h: interface for the CStorageCom class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_STORAGECOM_H__ACA58D47_1D34_48C3_9339_3B3AAF2891B0__INCLUDED_)
#define AFX_STORAGECOM_H__ACA58D47_1D34_48C3_9339_3B3AAF2891B0__INCLUDED_

#include "Storage.h"
#include "KDComIAuthority.h"

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

class CStorageCom : public CStorage
{
public:
	CStorageCom();
	virtual ~CStorageCom();
	
	virtual void GetRoles(CCopyableMap<CString,LPCTSTR,CStringItemsArray,CStringItemsArray&> & mapRoles);
	virtual void AddRole(const CString &strRoleName, const CStringItemsArray &arrAdmittanceRadiusIPs);
	virtual void UpdateRole(const CString &strOriginalRoleName, const CString &strNewRoleName, const CStringItemsArray &arrAdmittanceRadiusIPs);
	virtual void DeleteRole(const CString &strRoleName);
	virtual void SetUserGroupDefaultRole(const CString &strGroupName, const CStringItemsArray &arrDefaultRoles);
	virtual void SetUserRole(const CString &strUserName, const CStringItemsArray &arrRolesNames);
private:
	KDComIAuthority m_IAuthority;
	COleException * m_pOleException;
};

#endif // !defined(AFX_STORAGECOM_H__ACA58D47_1D34_48C3_9339_3B3AAF2891B0__INCLUDED_)
